package main

import (
	"fmt"
)

type Animal interface {
	sleep()
}

type Dog struct {
	name string
}

// Dog实现了Animal接口
func (d Dog) sleep() {
	fmt.Printf("%s正在侧卧着睡觉\n", d.name)
}

func main() {
	var a Animal
	var chuanPu = Dog{"川普"}
	a = chuanPu     // a可以接收Dog类型
	chuanPu.sleep() // 将Dog类型chuanPu拷贝给接收者方法sleep的d，然后执行sleep方法
	a = &chuanPu    // a可以接受*Dog类型
	a.sleep()       //将*Dog类型chuanPu取值操作后拷贝给接收者方法sleep的d，然后执行sleep方法

}
